﻿using LowCoding.Common;
using LowCoding.Domain;
using LowCoding.Domain.Entity;
using LowCoding.Dto;
using LowCoding.Dto.Demo;
using LowCoding.Dto.Sys;
using Mapster;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LowCoding.Application.Sys.Role
{
    /// <summary>
    /// 角色服务接口
    /// </summary>
    public interface ISysRoleService : IServiceBase<SysRole, SysRoleInput, SysRoleOutput, SysRoleSearchInput, string>
    {
        /// <summary>
        /// 根据角色ID查询角色权限信息
        /// </summary>
        /// <param name="roleid"></param>
        /// <returns></returns>
        Task<object> GetRoleRights(string roleid);
        /// <summary>
        /// 查询角色
        /// </summary>
        /// <returns></returns>
        Task<List<SysRole>> SysRolePageTwo();
        /// <summary>
        /// 角色下拉框
        /// </summary>
        /// <returns></returns>
        Task<List<RoleOptions>> GetRoleOptionsAsync();
        /// <summary>
        /// 新增一条数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<SysRoleOutput> InsertRoleAsync(SysRoleInput input);
        /// <summary>
        /// 更新一条数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
       Task<SysRoleOutput> RoleUpdateAsync(SysRoleInput input);
        /// <summary>
        /// 删除多个角色
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>

        Task<UpdateResult> DelRolesAsync(List<string> id);
    }
}
